System and methods for recommendations based on wearable sensors

ABSTRACT

Apparatus and method for providing contextual recommendations based on user state are disclosed herein. In some embodiments, sensor data corresponding to at least one sensor included in an item worn by a user is received. A user state is determined based on the received sensor data. In response to a state change being satisfied by at least the user state, a recommendation is determined based on the user state and a profile associated with the user. The recommendation may be presented on an electronic mobile device associated with the user.

RELATED APPLICATIONS

This application claims priority to U.S. patent application Ser. No.13/946,814, filed Jul. 19, 2013, entitled “System, Method, and ComputerReadable Medium for Recommendations Based on Wearable Sensors”, whichclaims priority to U.S. Provisional Patent Application No. 61,684,675filed Aug. 17, 2012, the disclosures of which are hereby incorporated byreference in their entirety.

TECHNICAL FIELD

The present application relates generally to systems and methods forproviding user targeted recommendations on a device.

BACKGROUND

Mobile communication devices, such as smartphones, enjoy widespreadpopularity due to their ability to perform a variety of functions, withnew functionalities becoming available on a regular basis. A mobilecommunication device may include one or more sensors (e.g., gyroscope,accelerometer) to capture environment or state information associatedwith the device—often considered as a proxy for a user. However, becausesuch sensors capture information based on actions taken on or to thedevice, the user may be required to carry the device, move the device,and/or interact with the device in a particular manner in order for thesensors to capture information. If the user places the device on anearby table, for example, the device is unable to detect the user'sactivities.

Nevertheless, even when the device is not in use by the user, thedevice's processor capabilities, display capabilities, and/or ability tocommunicate with other processors, databases, or other resources arevaluable, especially to other types of devices that do not have suchcapabilities.

BRIEF DESCRIPTION OF THE DRAWINGS

Some embodiments are illustrated by way of example and not limitationsin the figures of the accompanying drawings, in which:

FIG. 1 illustrates a network diagram depicting an example system 100 forfacilitating determination of and presentation of recommendations tousers according to some embodiments.

FIG. 2 illustrates a block diagram of additional details of the examplesystem of FIG. 1 according to some embodiments.

FIG. 3 illustrates an example simplified diagram showing a user adornedwith a plurality of wearable sensors according to some embodiments.

FIG. 4 illustrates a block diagram showing the recommendationdetermination functionalities and operations implemented in modulesaccording to some embodiments.

FIG. 5 illustrates an example flow diagram showing the recommendationdetermination functionalities or operations implemented by the modulesof FIG. 4 according to some embodiments.

FIG. 6 illustrates a diagrammatic representation of a machine in theexample form of a computer system within which a set of instructions maybe stored and executed, for causing the machine to perform any one ormore of the methodologies of FIG. 5 according to some embodiments.

The headings provided herein are for convenience only and do notnecessarily affect the scope or meaning of the terms used.

DETAILED DESCRIPTION

Described in detail herein is an apparatus and method for detecting auser's current activity, physical environment, and/or body state usingarticles of clothing and/or accessories embedded with sensors worn bythe user. The sensor data is received by a computing device, such as asmartphone or tablet, for analysis and action. The computing device usesthe remote sensor data to determine recommendations in context with theuser's activity, environment and/or state. In some embodiments, thecomputing device presents recommendations of items for purchase that arein context with the received sensor data (e.g., articles of clothing inthe user's size based on sensor data including the user's bodymeasurements). In other embodiments, the computing device presentsdietary, health, safety, or lifestyle recommendations based on theuser's past behavior (or known guidelines) and the received sensor data.Articles of clothing and/or accessories including sensors can include,but are not limited to, hats, shirts, pants, jackets, belt, eye glasses,jewelry, wrist watches, shoes, and the like.

Various modifications to the example embodiments will be readilyapparent to those skilled in the art, and the generic principles definedherein may be applied to other embodiments and applications withoutdeparting from the scope of the invention. Moreover, in the followingdescription, numerous details are set forth for the purpose ofexplanation. However, one of ordinary skill in the art will realize thatthe invention may be practiced without the use of these specificdetails. In other instances, well-known structures and processes are notshown in block diagram form in order not to obscure the description ofthe invention with unnecessary detail. Thus, the present disclosure isnot intended to be limited to the embodiments shown, but is to beaccorded the widest scope consistent with the principles and featuresdisclosed herein.

FIG. 1 illustrates a network diagram depicting an example system 100 forfacilitating determination of and presentation of recommendations tousers according to some embodiments. A networked system 102 forms anetwork-based publication system that provides server-sidefunctionality, via a network 104 (e.g., the Internet or Wide AreaNetwork (WAN)), to one or more clients and devices. FIG. 1 furtherillustrates, for example, one or both of a web client 106 (e.g., a webbrowser) and a programmatic client 108 executing on device machines 110and 112. In one embodiment, the publication system 100 comprises amarketplace system. In another embodiment, the publication system 100comprises other types of systems such as, but not limited to, a socialnetworking system, a matching system, an electronic commerce(e-commerce) system, and the like.

Each of the device machines 110, 112 comprises a computing device thatincludes at least a display and communication capabilities with thenetwork 104 to access the networked system 102. The device machines 110,112 comprise, but are not limited to, work stations, computers, generalpurpose computers, Internet appliances, hand-held devices, wirelessdevices, portable devices, wearable computers, cellular or mobilephones, portable digital assistants (PDAs), smart phones, tablets,ultrabooks, netbooks, laptops, desktops, multi-processor systems,microprocessor-based or programmable consumer electronics, gameconsoles, set-top boxes, network PCs, mini-computers, and the like. Eachof the client machines 110, 112 may connect with the network 104 via awired or wireless connection. For example, one or more portions ofnetwork 104 may be an ad hoc network, an intranet, an extranet, avirtual private network (VPN), a local area network (LAN), a wirelessLAN (WLAN), a wide area network (WAN), a wireless WAN (WWAN), ametropolitan area network (MAN), a portion of the Internet, a portion ofthe Public Switched Telephone Network (PSTN), a cellular telephonenetwork, a wireless network, a WiFi network, a WiMax network, anothertype of network, or a combination of two or more such networks.

Each of the device machines 110, 112 includes one or more applications(also referred to as “apps”) such as, but not limited to, a web browser,messaging application, electronic mail (email) application, ane-commerce site application (also referred to as a marketplaceapplication), and the like. In some embodiments, if the e-commerce siteapplication is included in a given one of the device machines 110, 112,then this application is configured to locally provide the userinterface and at least some of the functionalities with the applicationconfigured to communicate with the networked system 102, on an as neededbasis, for data and/or processing capabilities not locally available(such as access to a database of items available for sale, toauthenticate a user, to verify a method of payment, etc.). Conversely ifthe e-commerce site application is not included in a given one of thedevice machines 110, 112, the given one of the device machines 110, 112may use its web browser to access the e-commerce site (or a variantthereof) hosted on the networked system 102. Although two devicemachines 110, 112 are shown in FIG. 1 , more or less than two devicemachines can be included in the system 100.

An Application Program Interface (API) server 114 and a web server 116are coupled to, and provide programmatic and web interfaces respectivelyto, one or more application servers 118. The application servers 118host one or more marketplace applications 120 and payment applications122. The application servers 118 are, in turn, shown to be coupled toone or more databases servers 124 that facilitate access to one or moredatabases 126.

The marketplace applications 120 may provide a number of e-commercefunctions and services to users that access networked system 102.E-commerce functions/services may include a number of publisherfunctions and services (e.g., search, listing, content viewing, payment,etc.). For example, the marketplace applications 120 may provide anumber of services and functions to users for listing goods and/orservices or offers for goods and/or services for sale, searching forgoods and services, facilitating transactions, and reviewing andproviding feedback about transactions and associated users.Additionally, the marketplace applications 120 may track and store dataand metadata relating to listings, transactions, and user interactions.In some embodiments, the marketplace applications 120 may publish orotherwise provide access to content items stored in application servers118 or databases 126 accessible to the application servers 118 and/orthe database servers 124. The payment applications 122 may likewiseprovide a number of payment services and functions to users. The paymentapplications 122 may allow users to accumulate value (e.g., in acommercial currency, such as the U.S. dollar, or a proprietary currency,such as “points”) in accounts, and then later to redeem the accumulatedvalue for products or items (e.g., goods or services) that are madeavailable via the marketplace applications 120. While the marketplaceand payment applications 120 and 122 are shown in FIG. 1 to both formpart of the networked system 102, it will be appreciated that, inalternative embodiments, the payment applications 122 may form part of apayment service that is separate and distinct from the networked system102. In other embodiments, the payment applications 122 may be omittedfrom the system 100. In some embodiments, at least a portion of themarketplace applications 120 may be provided on the device machines 110and/or 112.

Further, while the system 100 shown in FIG. 1 employs a client-serverarchitecture, embodiments of the present disclosure is not limited tosuch an architecture, and may equally well find application in, forexample, a distributed or peer-to-peer architecture system. The variousmarketplace and payment applications 120 and 122 may also be implementedas standalone software programs, which do not necessarily havenetworking capabilities.

The web client 106 accesses the various marketplace and paymentapplications 120 and 122 via the web interface supported by the webserver 116. Similarly, the programmatic client 108 accesses the variousservices and functions provided by the marketplace and paymentapplications 120 and 122 via the programmatic interface provided by theAPI server 114. The programmatic client 108 may, for example, be aseller application (e.g., the TurboLister application developed by eBayInc., of San Jose, California) to enable sellers to author and managelistings on the networked system 102 in an off-line manner, and toperform batch-mode communications between the programmatic client 108and the networked system 102.

FIG. 1 also illustrates a third party application 128, executing on athird party server machine 130, as having programmatic access to thenetworked system 102 via the programmatic interface provided by the APIserver 114. For example, the third party application 128 may, utilizinginformation retrieved from the networked system 102, support one or morefeatures or functions on a website hosted by the third party. The thirdparty website may, for example, provide one or more promotional,marketplace, or payment functions that are supported by the relevantapplications of the networked system 102.

FIG. 2 illustrates a block diagram showing components provided withinthe networked system 102 according to some embodiments. The networkedsystem 102 may be hosted on dedicated or shared server machines (notshown) that are communicatively coupled to enable communications betweenserver machines. The components themselves are communicatively coupled(e.g., via appropriate interfaces) to each other and to various datasources, so as to allow information to be passed between theapplications or so as to allow the applications to share and accesscommon data. Furthermore, the components may access one or moredatabases 126 via the third party application 128.

The networked system 102 may provide a number of publishing, listing,and/or price-setting mechanisms whereby a seller (also referred to as afirst user) may list (or publish information concerning) goods orservices for sale or barter, a buyer (also referred to as a second user)can express interest in or indicate a desire to purchase or barter suchgoods or services, and a transaction (such as a trade) may be completedpertaining to the goods or services. To this end, the networked system102 may comprise at least one publication engine 202 and one or moreselling engines 204. The publication engine 202 may publish information,such as item listings or product description pages, on the networkedsystem 102. In some embodiments, the selling engines 204 may compriseone or more fixed-price engines that support fixed-price listing andprice setting mechanisms and one or more auction engines that supportauction-format listing and price setting mechanisms (e.g., English,Dutch, Chinese, Double, Reverse auctions, etc.). The various auctionengines may also provide a number of features in support of theseauction-format listings, such as a reserve price feature whereby aseller may specify a reserve price in connection with a listing and aproxy-bidding feature whereby a bidder may invoke automated proxybidding. The selling engines 204 may further comprise one or more dealengines that support merchant-generated offers for products andservices.

A listing engine 206 allows sellers to conveniently author listings ofitems or authors to author publications. In one embodiment, the listingspertain to goods or services that a user (e.g., a seller) wishes totransact via the networked system 102. In some embodiments, the listingsmay be an offer, deal, coupon, or discount for the good or service. Eachgood or service is associated with a particular category. The listingengine 206 may receive listing data such as title, description, andaspect name/value pairs. Furthermore, each listing for a good or servicemay be assigned an item identifier. In other embodiments, a user maycreate a listing that is an advertisement or other form of informationpublication. The listing information may then be stored to one or morestorage devices coupled to the networked system 102 (e.g., databases126). Listings also may comprise product description pages that displaya product and information (e.g., product title, specifications, andreviews) associated with the product. In some embodiments, the productdescription page may include an aggregation of item listings thatcorrespond to the product described on the product description page.

The listing engine 206 also may allow buyers to conveniently authorlistings or requests for items desired to be purchased. In someembodiments, the listings may pertain to goods or services that a user(e.g., a buyer) wishes to transact via the networked system 102. Eachgood or service is associated with a particular category. The listingengine 206 may receive as much or as little listing data, such as title,description, and aspect name/value pairs, that the buyer is aware ofabout the requested item. In some embodiments, the listing engine 206may parse the buyer's submitted item information and may completeincomplete portions of the listing. For example, if the buyer provides abrief description of a requested item, the listing engine 206 may parsethe description, extract key terms and use those terms to make adetermination of the identity of the item. Using the determined itemidentity, the listing engine 206 may retrieve additional item detailsfor inclusion in the buyer item request. In some embodiments, thelisting engine 206 may assign an item identifier to each listing for agood or service.

In some embodiments, the listing engine 206 allows sellers to generateoffers for discounts on products or services. The listing engine 206 mayreceive listing data, such as the product or service being offered, aprice and/or discount for the product or service, a time period forwhich the offer is valid, and so forth. In some embodiments, the listingengine 206 permits sellers to generate offers from the sellers' mobiledevices. The generated offers may be uploaded to the networked system102 for storage and tracking.

Searching the networked system 102 is facilitated by a searching engine208. For example, the searching engine 208 enables keyword queries oflistings published via the networked system 102. In example embodiments,the searching engine 208 receives the keyword queries from a device of auser and conducts a review of the storage device storing the listinginformation. The review will enable compilation of a result set oflistings that may be sorted and returned to the client device (e.g.,device machine 110, 112) of the user. The searching engine 208 mayrecord the query (e.g., keywords) and any subsequent user actions andbehaviors (e.g., navigations).

The searching engine 208 also may perform a search based on the locationof the user. A user may access the searching engine 208 via a mobiledevice and generate a search query. Using the search query and theuser's location, the searching engine 208 may return relevant searchresults for products, services, offers, auctions, and so forth to theuser. The searching engine 208 may identify relevant search results bothin a list form and graphically on a map. Selection of a graphicalindicator on the map may provide additional details regarding theselected search result. In some embodiments, the user may specify aspart of the search query a radius or distance from the user's currentlocation to limit search results.

The searching engine 208 also may perform a search based on an image.The image may be taken from a camera or imaging component of a clientdevice or may be accessed from storage.

In a further example, a navigation engine 210 allows users to navigatethrough various categories, catalogs, or inventory data structuresaccording to which listings may be classified within the networkedsystem 102. For example, the navigation engine 210 allows a user tosuccessively navigate down a category tree comprising a hierarchy ofcategories (e.g., the category tree structure) until a particular set oflisting is reached. Various other navigation applications within thenavigation engine 210 may be provided to supplement the searching andbrowsing applications. The navigation engine 210 may record the varioususer actions (e.g., clicks) performed by the user in order to navigatedown the category tree.

Additional modules and engines associated with the networked system 102are described below in further detail. It should be appreciated thatmodules or engines may embody various aspects of the details describedbelow.

FIG. 3 illustrates an example simplified diagram showing a user 300adorned with one or more wearable sensors according to some embodiments.A plurality of wearable sensors (also referred to as sensors, sensordevices, wearable sensor devices, wearable sensor accessories, bodysensors, wearable body sensors, remote body sensors, or remote sensors)are included in, but are not limited to, articles of clothing (a bodymeasuring jacket 302, a hat 304, a shirt 310, pants 312, belt (notshown)), eye glasses 306, jewelry 308, a wrist watch 314, shoes 316,wristband, armband, accessories, and/or other items (collectivelyreferred to as items wearable by the user 300 or wearable items) thatcan be worn by the user 300. Each of the plurality of wearable itemsincludes one or more (embedded) sensors to detect one or moreinformation about the user's 300 body, activity, and/or environment(e.g., body measurements, weight, number of steps taken over a giventime period, environment). Each of the plurality of wearable items alsoincludes one or more mechanisms to facilitate communication (e.g.,transmission) of the detected sensor data to another device, such as acomputing device 320. The communication may occur using Bluetooth, WiFi,near field communication (NFC), a wireless communication method, and/orvia a wired connection. In some embodiments, communication between thewearable sensors and computing device 320 may occur when they are neareach other, or the transmitting/receiving capabilities of one or bothmay be short-range (e.g., NFC or Bluetooth).

Each of the plurality of wearable items (with the possible exception ofthe body measuring jacket 302 as discussed in detail below) comprises anitem that looks, feels, and functions like other items of the same type,so that the user 300 is likely to wear it as he/she normally wouldrather than having the sensor-embedded item be an additional item wornspecifically for the purpose of capturing sensor data. For example,jewelry 308 looks, feels, and functions like jewelry that does notinclude sensor(s) and communication mechanisms.

The plurality of wearable items is shown worn simultaneously by the user300 for purposes of providing a compact illustration. However, it isunderstood that the user 300 may only wear one or more items at anygiven time, and that the type(s) of wearable sensors may change fromtime to time (e.g., day to day, week to week). For instance, the user300 may not wear the (same) shirt 310 every day while eye glasses 306may be worn daily. The location and number of sensor(s) for each of theplurality of wearable sensors shown in FIG. 3 are also for illustrationpurposes only and should not be construed to limit the number and/orpositioning of sensor(s) for any of the plurality of wearable sensors.

The computing device 320 (also referred to as a mobile device, displaydevice, electronic mobile device, processing device, smartphone, tablet,and the like) comprises a receiving device for the sensor data providedby one or more of the plurality of wearable sensors. The computingdevice 320 has a wireless and/or wired connection with the plurality ofwearable sensors. In response to receipt of the sensor data, thecomputing device 320 is configured to provide processing functions thatmay not be possible on the wearable sensors. The computing device 320 isalso configured to communicate with a server 322 to obtain additionalprocessing capacity and/or a database 324 to retrieve stored data, via anetwork 104, as needed. The computing device 320 communicates wirelesslyand/or via a wired connection with the network 104. The computing device320 includes a display 321 to present information, such asrecommendations, to the user 300 in accordance with the sensor data.

The computing device 320 is similar to device machines 110 or 112 ofFIG. 1 . The server 322 is similar to database servers 124, API server114, web server 116, and/or applications server 118 of FIG. 1 . Thedatabase 324 is similar to databases 126 of FIG. 1 .

In one embodiment, the plurality of wearable items/sensor 302-316 andthe computing device 320 comprise an intra-body area network (IBAN)configured to provide recommendations or information triggered by one ormore of the user's 300 body measurements, user's 300 current activity,user's 300 current non-activity, user's 300 physical environment, user's300 physiological state, and/or other sensed data measured by theplurality of wearable sensors. In other embodiments, the plurality ofwearable items/sensors 302-316, computing device 320, server 322, anddatabase 324 can comprise the IBAN configured to provide therecommendations or information.

FIG. 4 illustrates a block diagram showing the recommendationdetermination functionalities and operations implemented in modulesaccording to some embodiments. The modules comprise one or more softwarecomponents, programs, applications, apps, or other units of code base orinstructions configured to be executed by one or more processorsincluded in the application servers 118, device machine 110, devicemachine 112, computing device 320 and/or server 322 to provide therecommendation determination functionalities or operations describedherein. In some embodiments, one or more of the modules are downloadedfrom an e-commerce site appropriate for the type of computing device.For example, if the computing device 320 (or device machines 110 or 112)comprises an iOS-type device (e.g., iPhone or the iPad), then themodules (which can be packaged as part of an app) can be downloaded fromiTunes. Similarly, if the computing device 320 (or device machines 110or 112) comprises an Android-type device, then the modules can bedownloaded from the Android Marketplace. The computing device 320 hascommunication capabilities with servers or databases at a remotelocation (e.g., server 322, database 324) to access data and/orprocessing capabilities to facilitate providing targeted recommendationsto the user 300.

In other embodiments, the modules may be hosted on the server 322 (orapplication servers 118) and no download of the modules is required onthe computing device 320 (or device machines 110, 112). Instead, themodules may be accessed by computing devices 320 (or device machines110, 112) using a web browser over the network 104. In still otherembodiments, some of the modules may be included in the computing device320 while other of the modules may be included in the server 322; thecomputing device 320 communicating with the server 322 to togetherprovide the recommendations. Although modules 402-406 are shown asdistinct modules in FIG. 4 , it should be understood that modules402-406 may be implemented as fewer or more modules than illustrated. Itshould also be understood that any of modules 402-406 may communicatewith one or more components included in the system 100, such as server322, database 324, computing device 320, database servers 124,application servers 118, device machine 110, or device machine 112. Themodules include a presentation module 402, a sensor data analysis module404, a user profile module 406, and a recommendation module 408.

FIG. 5 illustrates an example flow diagram 500 showing therecommendation determination functionalities or operations implementedby the modules of FIG. 4 according to some embodiments. The operationsof the flow diagram 500 may be performed by the device machine 110,device machine 112, a server included in the networked system 102 (e.g.,API server 114, web server 116, or application servers 118), computingdevice 320, and/or server 322. FIGS. 4 and 5 are discussed below inconjunction with each other. A plurality of embodiments of the flowdiagram 500 is discussed below.

In a first embodiment, the user 300 wears at least the body measuringjacket 302 and the computing device 320 provides one or morerecommendations or information in response to the sensor data measuredby the body measuring jacket 302. At a block 502 a, the presentationmodule 402 is configured to display on the display 321 of the computingdevice 320 instructions or information about how to wear and/or operatethe body measuring jacket 302. Such instructions/information cancomprise one or more screens of text and graphical representations aswell as requests for user 300 input so that the instructions/informationcan be tailored to the user's 300 needs. For example, the body measuringjacket 302 being used to obtain the user's body measurements (e.g.,neck, arm length, chest, shoulder, waist, and hip measurements) asopposed to the user 300 using the body measuring jacket 302 to specifyhis/her preferred closeness/looseness of fit is inputted to thecomputing device 320 by the user 300. This in turn may determine the setof instructions/information provided to the user 300 to facilitateproper measurements. Alternatively, if operation/purpose of the bodymeasuring jacket 302 is singular or otherwise known, then block 502 amay be optional or omitted.

Next at a block 504 a, the computing device 320 receives sensor datafrom the body measuring jacket 302 corresponding to the user 300's body.The sensor data comprises data corresponding to the dimensions of theuser's 300 body and/or the preferred amount of closeness/looseness offit for different parts of the user's 300 body relative to the user's300 actual body dimensions. The body measuring jacket 302 may also bereferred to as a smart jacket or body measurement jacket. Exampleconfigurations of the body measuring jacket 302 include, but are notlimited to: a jacket embedded with a wire mesh (or grid) of contact orpressure sensors; a jacket having specifically located contact orpressure sensors; a jacket including a plurality of airchambers/channels, air pressure or volume sensors, and air inlet/outletmechanism to control the amount of air in each of the airchambers/channels; a jacket including a pattern (e.g., a plaid pattern)and an image capture device to detect the deformation of the pattern dueto the user's body contours/dimensions; and the like. The body measuringjacket 302 may also include buckles or other adjustment mechanism toconform different parts of the body measuring jacket 302 to thecorresponding parts of the user's 300 body, and to facilitate thesensors to detect the difference between the jacket 302 at its defaultdimensions and at its user's 300 body conformed dimensions. The sensordata received by the computing device 320 corresponds to the type ofsensors included in the body measuring jacket 302. The received sensordata may be raw sensor data or pre-processed sensor data (e.g., rawsensor data that has at least been minimally processed prior totransmission to computing device 320).

The body measuring jacket 302 may be worn by the user 300 specificallyto obtain body measurements (or to specify preferred closeness/loosenessof fit), and thus not worn ordinarily as an article of clothing. If theprice of the body measuring jacket 302 is prohibitive, the bodymeasuring jacket 302 is available for use in stores, and the like, thebody measuring jacket 302 may be shared by a plurality of users andowned, for example, by a retailer wishing to promote its clothing oraccessories. Similarly, such a retailer may also provide the computingdevice 320 to facilitate use of the body measuring jacket 302. Anexample of sensors associated with the body measuring jacket 302 (alsoreferred to as a body measuring garment) to capture body measurementsand/or preferred fit measurement may comprise one or more PrimeSensesensors manufactured by Primesense Americas of Los Altos, Californiacapable of three-dimensional (3D) depth sensing.

Once the computing device 320 receives the sensor data, the sensor dataanalysis module 404 is configured to analyze the received sensor data todetermine one or more recommendations/information to provide to the user300 (block 506 a). The sensor data analysis module 404 may filter,normalize, remove noise, amplify, convert, or otherwise process thereceived sensor data to ready the data into a format suitable foranalysis. In some embodiments, the sensor data analysis module 404 candetermine recommendations/information based on the sensor data. In otherembodiments, the sensor data analysis module 404 obtains additionaldata, and uses the additional data with the sensor data, to make thedetermination. Some or all of the analysis and determination may beperformed by the server 322, for example, when the computing device 320has insufficient processing capabilities.

To obtain additional data in order to make the determination, the sensordata analysis module 404 in conjunction with the user profile module 406are configured to obtain or access user profile and/or recommendationdata stored in a database (e.g., database 324, databases 126) (block 508a). The recommendation module 408 determines one or more recommendationsfrom among a recommendation library that matches the sensor datacorresponding to the user 300 from the body measuring jacket 302 and theuser's 300 profile data. User profile data comprises, but are notlimited to, user preferences, wish lists, shopping lists, the contentsof the user's 300 wardrobe, and other information pertaining to the user300. Recommendation data comprises, but are not limited to, physicalstore inventory, online store inventory (online marketplace ore-commerce site), and the like.

As an example, the recommendation module 408 determines the particularsize of each article of clothing (e.g., tops, dresses, outerwear, etc.)and/or accessories (e.g., hat, belt, gloves etc.) in a (physical and/oronline) store inventory that would fit the user 300 based on the user's300 body measurements (or preferred fit preference) provided in thesensor data. The store inventory includes dimensions of each differentsizes of each article of clothing and/or accessories offered by thestore in order to compare against the user's dimensions. Then at a block510 a, the recommendation module 408 coordinates with the presentationmodule 402 to display information about the matching recommendationitems on the display 321 of computing device 320. The informationdisplayed about each of the matching recommendation items includes, butis not limited to, an item image, brand name, style name, size, price,description, fabric content, location within a given physical storewhere the item is available (in the case of the recommendation itembeing selected from a physical store inventory), an option to purchasevia the computing device 320, and the like. With the informationprovided on the display 321, the user 300 avoids guessing at the propersize for a given clothing item of interest and/or having to try on thegiven clothing item in one, two, or more different sizes.

As another example, the recommendation module 408 determines theparticular size of each article of clothing and/or accessories in a(physical and/or online) store inventory as discussed immediately above.However, rather than displaying information about each of the matchingrecommendation items, the recommendation module 408 is configured toconsolidate or distill the size information to determine the proper sizefor each brand of article of clothing and/or accessories based on theuser's 300 body measurements (or specified fit preference). Suchinformation is displayed on the display 321 of the computing device 320.

As still another example, the recommendation module 408 is configured toadditionally use information about the user's 300 existing wardrobe todetermine recommendation items. In some embodiments, the computingdevice 320 (or other device) is used to photograph or image each item inthe user's 300 wardrobe. The captured image of each item is processed toidentify the color and/or pattern of the item, the type of item (e.g.,top, dress, skirt, pants, etc.), and other item information. Additionaldetails associated with capturing and identifying at least the color andpattern of articles of clothing/accessories are provided in U.S. patentapplication Ser. No. 13/631,833 filed Sep. 28, 2012. Such iteminformation for all the wardrobe items is cataloged for later use, suchas by the recommendation module 408.

The recommendation module 408 is configured to analyze, for instance,the colors of all the items in the user's 300 wardrobe to determine whatcolor(s) the user 300 likes, the different shades of a given liked colorin the user's wardrobe, and the like. Then the recommendation module 408can determine matching recommendation items to be those items in theproper size given the user's 300 body measurements (or preferred fitpreference) and which are also in a shade of a given liked color that isnot in the user's wardrobe. If user's 300 wardrobe contains a number ofblue tops, a matching recommendation item may also be in the color bluebut in a shade of blue that the user 300 does not currently have inhis/her wardrobe. Then at the block 510 a, the matching recommendationitems and corresponding item information are displayed on the display321 of computing device 320.

When a store inventory is accessed in order to determine matchingrecommendation item(s), the store inventory may be maintained by thestore/retailer. Thus, even if the entity associated with providing therecommendations is a different entity from the store/retailer, therecommendation module 408 is configured to access the store inventorywithout divulging information about the user 300 (such as the useridentity).

At the block 510 a, the presentation of matching recommendation item(s)can include presentation of texture or tactile information on thedisplay 321. The display 321 may use capacitance at differentfrequencies to denote a texture on the top surface of the screen. Higherfrequencies correspond to rougher textures. For example, arecommendation item can be clothing or accessory made of fur, silk,cashmere, or other material having noteworthy texture.

In a second embodiment, the body measuring jacket 302 is configured fortaking body measurements/preferred fit measurements as discussed aboveand is additionally configured to show color and/or pattern so that theuser 300 can see how each of a given color and/or pattern looks on himor her without having to try on a separate garment for each of thedifferent given colors and/or patterns. At a block 502 b, the computingdevice 320 (or a projection type of device) is configured to projectcolor and/or pattern onto the body measuring jacket 302. Alternatively,the body measuring jacket 302 includes color and/or patternconfiguration capability so that the body measuring jacket 302 itselfgenerates and configures the different colors and/or patterns on itsouter surface. The user 300 can try out different colors and/or patternsand indicate ones of interest to the computing device 320.

Blocks 504 b and 506 b are similar to blocks 504 a and 506 a,respectively. As discussed above for block 504 a, at the block 504 b,the computing device 320 receives sensor data (e.g., body measurementdata and/or fit preference data) from the body measuring jacket 302. Thecomputing device 320 also receives information about which of thecolor(s) and/or pattern(s) tried out on the body measuring jacket 302are liked by the user 300. At the block 506 b, as discussed above forblock 506 a, the sensor data analysis module 404 is configured toprocess the received sensor data, as necessary, and analyze them todetermine recommendation(s) to present to the user 300.

Next at a block 508 b, the sensor data analysis module 404 andrecommendation module 408 are configured to obtain or accessrecommendation data sources (e.g., store inventories). Articles ofclothing and/or accessories from among the store inventory(ies) that arein the user's size (based on the user's 300 body measurements or fitpreference specified via the sensor data) and which are in the user's300 liked color(s)/pattern(s) are deemed to be matching recommendationitems by the recommendation module 408.

Information about the matching recommendation items is presented on thedisplay 321 by the presentation module 402 at a block 510 b. Theinformation displayed about each of the matching recommendation itemsincludes, but is not limited to, an item image, brand name, style name,size, color, price, description, fabric content, location within a givenphysical store where the item is available (in the case of therecommendation item being selected from a physical store inventory), anoption to purchase via the computing device 320, and the like. Thedisplay 321 may also comprise a tactile display as discussed above andprovide tactile texture information about one or more of the matchingrecommendation items.

In a third embodiment, the wearable sensors worn by the user 300 areincluded in one or more of the hat 304 and eye glasses 306. Each of thehat 304 and the eye glasses 306 includes at least an imaging sensor tocapture images of the physical environment that the user 300 is in orthe particular item that the user 300 is viewing at a given time.

Providing wearable sensor use instructions on the display 321 at a block502 c is optional.

At a block 504 c, the computing device 320 receives sensor data from thehat 304 and/or eye glasses 306. The sensor data includes, but are notlimited to, one or more images of the user's 300 physical environmentand/or the item being viewed by the user 300. As an example, the user300 may be standing in front of a bookstore or in a bookstore and islooking at a book. Sensors included in the hat 304 and/or eye glasses306 captures one or more images of the book cover, the back of the book,or other parts of the book as the user 300 flips through the book.

Next at a block 506 c, the sensor data analysis module 404 is configuredto analyze the received sensor data to determine one or morerecommendations/information to provide to the user 300. The sensor dataanalysis module 404 may determine that a pre-set state change or someother trigger has not occurred based on the current received sensordata, such that providing a recommendation is not suitable. The sensordata analysis module 404 may filter, normalize, remove noise, amplify,convert, or otherwise process the received sensor data to ready the datainto a format suitable for analysis. In some embodiments, the sensordata analysis module 404 can determine recommendations/information basedon the sensor data. In other embodiments, the sensor data analysismodule 404 obtains additional data, and uses the additional data withthe sensor data, to make the determination. Some or all of the analysisand determination may be performed by the server 322, for example, whenthe computing device 320 has insufficient processing capabilities.

Continuing the book example, the sensor data analysis module 404performs text recognition on the received image sensor data to identifyat least the book title, author, and possibly the book's uniqueInternational Standard Book Number (ISBN). Alternatively the sensor dataanalysis module 404 may scan for the book's bar code instead of textualidentifier information. The sensor data analysis module 404 may be ableto determine that the book is part of a particular series based on thetitle and author and without referring to another source, such as thebookstore's inventory.

Next at a block 508 c, the recommendation module 408 in conjunction withthe user profile module 406 are configured to obtain or access userprofile information, particularly, the books that the user 300 owns.This information may be available directly on the computing device 320because the user 300 purchased and downloaded electronic books on thecomputing device 320. The recommendation module 408 compares the booksensed by the wearable sensors against the user's 300 books identifiedin the user profile information. The recommendation module 408 maydetermine that the user 300 owns earlier book(s) in the same series asthe book sensed by the wearable sensors, and additionally whether theuser 300 has finished reading those earlier book(s) in the same series.If the earlier book(s) has not been read, then the recommendationtriggered by the sensor data comprises a reminder that the user 300 ownsthe earlier book(s) in the same series and to finish reading thosebook(s) before purchasing the book that the user 300 is currentlylooking at. Such recommendation is displayed on the display 321 ofcomputing device 320 at a block 510 c. Conversely, if the earlierbook(s) has already been read, the recommendation comprises encouragingthe user 300 to purchase the sensed book and providing information tofacilitate a purchase, such as providing a purchase icon, a coupon, alist of booksellers offering the book at a lower price, etc., on thecomputing device 320.

If the sensor data analysis module 404 is unable to determine whetherthe sensed book is part of a series based on title and author, therecommendation module 408 obtains or accesses one or more resources atthe block 508 c. The bookstore's inventory includes information aboutthe sensed book relative to other books, such as series information. Therecommendation module 408 now has the book series information to compareagainst the user's 300 books and make a recommendation on the computingdevice 320 as discussed above.

In a fourth embodiment, the wearable sensors are included in the shirt310, pants 312, watch 314, wristband (not shown), armband (not shown),and/or shoes 315. Each of the shirt 310, pants 312, watch 314,wristband, armband, and shoes 315 may include an accelerometer,movement, gyroscope, moisture, temperature, and/or contact sensors todetect when it is being worn by the user 300, the type of physicalactivity being engaged by the user 300, and/or the physiological stateof the user 300. For instance, in response to the sensor data beingindicative of the user 300 engaging in exercise, the computing device320 provides music recommendations in response to the exercise trigger.

UP by Jawbone of San Francisco, California is an example wristbandincluding wearable sensors to track user movement that can be used withan associated interface to manually enter other information such asfoods eaten or user moods. An example armband may be BodyMedia byBodyMedia, Inc. of Pittsburgh, Pennsylvania that includes a plurality ofdifferent sensors to measure movement, number of steps, sweat (galvanicskin response), skin temperature, and body heat flux. Basis Band byBasis Science, Inc. of San Francisco, California is an example wristwatch that includes a plurality of sensors on the backside of the watchface. The sensors monitor optical blood flow to determine heart rate,includes an accelerometer to measure body movement (activity level,sleep quality), monitor perspiration, and skin temperature measurements.Optical fiber Bragg grating (FBG)-based sensors can be integrated intotextiles, such as shirt 310, pants 312, or shoes 315, to monitor bodytemperature. See H. Li, H. Yang, E. Li, Z. Liu, & K. Wei, “Wearablesensors in intelligent clothing for measuring human body temperaturebased on optical fiber Bragg grating,” Optics Express, Vol. 20 (11),11740-11752, 2012 (available athttp://ro.uow.edu.au/cgi/viewcontent.cgi?article=1303&context=eispapers).Where ultra-low power consumption is relevant, such as clothing oraccessories with limited physical dimensions or low weight requirements,an example of wearable sensors having ultra-low power requirements isdiscussed in G. Cohn, S. Gupta, T. Lee, D. Morris, J. Smith, M.Reynolds, D. Tan, & S. Patel, “An ultra-low-power human body motionsensor using static electric field sensing,” Ubi Comp '12, Sep. 5-8,2012, Pittsburgh, Pennsylvania (available athttp://research.microsoft.com/en-us/um/redmond/groups/cue/publications/CohnUbicomp2012_SEF.pdf).

Providing wearable sensor use instructions on the display 321 at a block502 d is optional.

At a block 504 d, the computing device 320 receives sensor data from theshirt 310, pants 312, watch 314, wristband, armband, and/or shoes 315.The sensor data includes, but are not limited to, an indication that theitem is being worn by the user 300, time/date stamp, item or sensoridentifier, type of physical activity (e.g., running, walking, sleeping,sitting, eating, cycling, in a motor vehicle, etc.), and/or userphysiological state (e.g., level of perspiration, skin temperature,heart rate, etc.). The sensor data received by the computing device 320permits, for example, the sensor data analysis module 404 at a block 506d to determine that certain of the worn items are exercise gear (e.g.,shirt 310, pants 312, shoes 315, wristband, armband) (using respectiveitem or sensor identifier to look-up previously cataloged informationabout the wearable sensors) and that they are being worn together at thesame time by the user 300 (using the time/date stamp and indication ofbeing worn). Thus, it appears that the user 300 has put on exerciseclothes and is wearing sneakers in order to exercise. As anotherexample, the received sensor data may permit the sensor data analysismodule 404 to determine that the user 300 is wearing the particularitem(s) including the wearable sensors to generally monitor his/heractivity or physiological state for health reasons.

The sensor data analysis module 404 may filter, normalize, remove noise,amplify, convert, or otherwise process the received sensor data to readythe data into a format suitable for analysis. The received sensor datamay comprise raw data indicative of, for instance, amount of movement orskin temperature but not necessarily the type of activity orphysiological state corresponding to such raw data. In this case thesensor data analysis module 404 provides the conversion orinterpretation of the received sensor data into contextual informationsuch as identification of the user activity or physiological state.Examples of suitable algorithmic methods to determine activity orphysiological state from wearable sensor data are provided in J. Parkka,M. Ermes, P. Korpipaa, J. Mantyjarvi, J. Peltola, & I. Korhonen,“Activity classification using realistic data from wearable sensors,”IEEE Transactions on Information Technology in Biomedicine, Vol. 10, No.1, January 2006, 119-128 (available athttp://cens.ucla.edu/˜mhr/cs219/context/parkka06.pdf) or A. Manzoor, C.Villalonga, A. Calatroni, H. Truong, D. Roggen, S. Dustdar, & G.Troster, “Identifying important action primitives for high levelactivity recognition,” Smart Sensing and Context Lecture Notes inComputer Science, Volume 6446, 2010, 149-162 (available athttp://hydra.infosys.tuwien.ac.at/staff/manzoor/papers/5_EuroSSC2010.pdf).Conversely the received sensor data may comprise data that has alreadybeen contextualized.

In some embodiments, the sensor data analysis module 404 can determinerecommendations/information based on the sensor data alone. In otherembodiments, the sensor data analysis module 404 obtains additionaldata, and uses the additional data with the sensor data, to make thedetermination. Some or all of the analysis and determination may beperformed by the server 322, for example, when the computing device 320has insufficient processing capabilities.

Next at a block 508 d, the recommendation module 408 in conjunction withthe user profile module 406 are configured to obtain or access userprofile information, particularly, the music that the user 300 owns.This information may be available directly on the computing device 320because the user 300 purchased and downloaded songs/albums on thecomputing device 320. The recommendation module 408 determines one ormore songs in the user's 300 music library to recommend for play duringphysical activity. The songs may be selected based on the type ofphysical activity being engaged by the user 300. A recommended playlistfor running may differ from a playlist for walking. Alternatively therecommendation module 408 may access the user's 300 music library and anonline music store (e.g., iTunes) to recommend music for purchase thatare similar to the user's 300 tastes and which are suitable for the typeof physical activity available on the online music store.

The music recommendations are presented on the display 321 of thecomputing device 320 at a block 510 d.

In some embodiments, the sensor data analysis module 404 (in conjunctionwith the user profile module 406) may determine that the received sensordata alone (or in conjunction with the user profile information) do notrepresent a pre-set state change or trigger that warrants arecommendation. In which case block 510 d may not occur. For example,continuing the music example, if the sensor data indicates that the user300 is cycling, then listening to music (typically using earbuds) duringsuch activity is not advisable. Accordingly, music recommendations maynot be provided.

In a fifth embodiment, the wearable sensors are included in shoes 316,pants 312, watch 314, wristband, and/or armband configured to detect theamount of user's 300 physical activity and/or weight change. Therecommendations provided to the user 300 may comprise food, diet,weight, and/or fitness related recommendations. Examples of clothing,watch, wristband, or armband including wearable sensors are discussedabove with in connection with blocks 502 d-510 d.

Providing wearable sensor use instructions on the display 321 at a block502 e is optional.

At a block 504 e, the computing device 320 is configured to receivesensor data from the shoes 316, pants 312, watch 314, wristband, and/orarmband. For example, the shoes 316 include pressure sensors and/orpedometers located in or below the soles to detect the number of stepstaken and/or the wearer's weight. The greater the pressure detected fora given wearer for a given physical activity (e.g., standing, running,walking), the greater the wearer's weight. The shoes 316 do not need tonecessarily include sensors capable of capturing exact weightmeasurement. Instead, changes in the sensed pressure over time aresufficient to determine that the wearer's weight is increasing ordecreasing. As another example, the pants 312 can include a group ofcontact or pressure sensors located circumferentially around thewaistband to sense how much of the waistband is in contact with theuser's 300 waist and/or how much pressure contact the waistband is withthe user's 300 waist. The greater the pressure sensed, the tighter thepants 312 are on the user 300 and correspondingly, is indicative ofweight gain. The pants 312 can also include a pedometer to detect thenumber of steps taken by the user 300. As another example, watch 314,wristband, and/or armband may include motion sensors to detect eatingand the user 300 may manually enter kind and amount of foods consumed,so that food intake (calories consumed) may be tracked relative toamount/type of physical activity.

Next at a block 506 e, the sensor data analysis module 404 is configuredto analyze the received sensor data to determine recommendations toprovide on the computing device 320 in response to the available useractivity and body data. The sensor data analysis module 404 may filter,normalize, remove noise, amplify, convert, or otherwise process thereceived sensor data to ready the data into a format suitable foranalysis. The received sensor data may comprise raw data indicative of,for instance, amount of movement or skin temperature but not necessarilythe type of activity or physiological state corresponding to such rawdata. In this case the sensor data analysis module 404 provides theconversion or interpretation of the received sensor data into contextualinformation such as identification of the user activity or physiologicalstate. Examples of suitable algorithmic methods to determine activity orphysiological state from wearable sensor data are provided in J. Parkka,M. Ermes, P. Korpipaa, J. Mantyjarvi, J. Peltola, & I. Korhonen,“Activity classification using realistic data from wearable sensors,”IEEE Transactions on Information Technology in Biomedicine, Vol. 10, No.1, January 2006, 119-128 (available athttp://cens.ucla.edu/˜mhr/cs219/context/parkka06.pdf) or A. Manzoor, C.Villalonga, A. Calatroni, H. Truong, D. Roggen, S. Dustdar, & G.Troster, “Identifying important action primitives for high levelactivity recognition,” Smart Sensing and Context Lecture Notes inComputer Science, Volume 6446, 2010, 149-162 (available athttp://hydra.infosys.tuwien.ac.at/staff/manzoor/papers/5_EuroSSC2010.pdf).Conversely the received sensor data may comprise data that has alreadybeen contextualized.

In some embodiments, the sensor data analysis module 404 can determinerecommendations/information based on the sensor data alone. In otherembodiments, the sensor data analysis module 404 obtains additionaldata, and uses the additional data with the sensor data, to make thedetermination. Additional data may comprise, for example, previouslysensed pressure, contact, or movement data for the user 300 so thatrelative weight change or trend can be determined. Some or all of theanalysis and determination may be performed by the server 322, forexample, when the computing device 320 has insufficient processingcapabilities.

The sensor data analysis module 404 may filter, normalize, remove noise,amplify, convert, or otherwise process the received sensor data to readythe data into a format suitable for analysis.

At a block 508 e, the recommendation module 408 is configured todetermine appropriate recommendation(s) based on the received sensordata. As an example, the sensor data indicates that the user 300 is notengaging in sufficient physical activity and/or is gaining weight. Lowercalorie food recommendations may thus be made on the display 321 (block510 e) when the user 300 is in a grocery store or dining out(geo-location information obtained using the global positioningsatellite (GPS) chip included in the computing device 320). Therecommendation module 408 accesses one or more food resources (e.g.,manufacturer-provided calorie information, restaurant menus, foodcaloric websites) to identify and select lower calorie foods, perhapsrelative to foods that the user 300 has purchased in the past.

As another example, the sensor data indicates that the user 300 hastaken a certain number of total steps in the shoes 316. The cumulativetotal number of steps exceeds a pre-determined threshold value, thepre-determined threshold value set at a number of steps at which theshoes 316 is getting old and should be replaced. The recommendationmodule 408 accesses one or more shoe store inventories to select one ormore replacement shoes that are available for purchase. The computingdevice 320 provides the approximate wear life left for the shoes 316,purchase interfaces, replacement shoe descriptions/images/reviews, andthe like

As still another example, the recommendation module 408 extrapolates theuser's 300 weight (or amount of weight gain) based on the current weightgain trend and assuming no changes to diet and physical activity level.The extrapolation information is provided on the computing device 320.As another example, the recommendation module 408 recommends physicalactivities and the amount of time that such activities should beperformed to maintain or lose weight. Such recommendations can bedynamically adjusted in accordance with changes to the user's 300physical activity level, weight/pant snugness, food buying pattern, andthe like.

In some embodiments, the sensor data analysis module 404 (in conjunctionwith the user profile module 406) may determine that the received sensordata alone (or in conjunction with the user profile information) do notrepresent a state change or trigger that warrants a recommendation. Inwhich case block 510 e may not occur. For example, if weight gain abovea certain threshold is a state change or trigger to provide arecommendation, but the sensor data alone (or in conjunction withpreviously received sensor data) indicates that the user 300 ismaintaining or losing weight or that the weight gain is below thethreshold, then recommendations relating to weight gain need not occur.

In a sixth embodiment, the wearable sensors are included in one or moreof the hat 304, eye glasses 306, jewelry 308, wrist watch 314, shirt310, armband, wristband, or pants 312. The wearable sensors include oneor more sensors to detect user's 300 movement and/or body physiologyindicative of, for example, excessive alcohol consumption or suddenillness making the user 300 unfit to operate a motor vehicle or engagein certain activity. The wearable sensors may also include one or moresensors to detect the physical environment that the user 300 is in, suchas being in the driver's seat of a motor vehicle vs. being at home.

Providing wearable sensor use instructions on the display 321 at a block502 f is optional.

At a block 504 f, the computing device 320 receives sensor data from oneor more of the wearable sensors capable of detecting the user's 300movement or body physiology and physical environment. The shirt 310and/or pants 312, for example, may include gyroscope or accelerometersensors to detect the user's movements and a pattern of movementindicative of impairment in motor functions. The jewelry 308, as anotherexample, may include a chemical detection sensor capable of detectingalcohol fumes and the amount of alcohol fumes from the user's 300 mouthand/or drinks put up to the user's 300 mouth. The eye glasses 306, asanother example, may include a microphone to capture the user's 300voice in order to determine slurring of speech and an image sensor todetermine the user's 300 physical environment. Examples of clothing,watch, wristband, or armband including wearable sensors are discussedabove with in connection with blocks 502 d-510 d.

Next at a block 506 f, the sensor data analysis module 404 is configuredto analyze the received sensor data to determine whether the user 300 isin a state that warrants taking action. The sensor data analysis module404 may filter, normalize, remove noise, amplify, convert, or otherwiseprocess the received sensor data to ready the data into a formatsuitable for analysis. The received sensor data may comprise raw dataindicative of, for instance, amount of movement or skin temperature butnot necessarily the type of activity or physiological statecorresponding to such raw data. In this case the sensor data analysismodule 404 provides the conversion or interpretation of the receivedsensor data into contextual information such as identification of theuser activity or physiological state. Examples of suitable algorithmicmethods to determine activity or physiological state from wearablesensor data are provided in J. Parkka, M. Ermes, P. Korpipaa, J.Mantyjarvi, J. Peltola, & I. Korhonen, “Activity classification usingrealistic data from wearable sensors,” IEEE Transactions on InformationTechnology in Biomedicine, Vol. 10, No. 1, January 2006, 119-128(available at http://cens.ucla.edu/˜mhr/cs219/context/parkka06.pdf) orA. Manzoor, C. Villalonga, A. Calatroni, H. Truong, D. Roggen, S.Dustdar, & G. Troster, “Identifying important action primitives for highlevel activity recognition,” Smart Sensing and Context Lecture Notes inComputer Science, Volume 6446, 2010, 149-162 (available athttp://hydra.infosys.tuwien.ac.at/staff/manzoor/papers/5_EuroSSC2010.pdf).Conversely the received sensor data may comprise data that has alreadybeen contextualized.

In some embodiments, the sensor data analysis module 404 can determinerecommendations/information based on the sensor data alone. In otherembodiments, the sensor data analysis module 404 obtains additionaldata, and uses the additional data with the sensor data, to make thedetermination. Some or all of the analysis and determination may beperformed by the server 322, for example, when the computing device 320has insufficient processing capabilities.

At a block 508 f, for example, if the recommendation module 408determines that the user 300 is exhibiting signs of intoxication—slurredspeech, weaving walking pattern, alcohol fumes, payment of large amountof alcohol, etc.—an appropriate recommendation may be to suggest callinga taxi rather than driving on the computing device 320. The taxisuggestion can include providing the phone number to call the taxi oreven an auto dial option so as to make calling a taxi as easy aspossible for the user 300. Conversely, if the recommendation module 408determines that although the user 300 has signs of intoxication, theuser 300 is a passenger in a motor vehicle (the user 300 is notdriving), then a suggestion to call a taxi is not necessary and perhapsa restaurant suggestion (to dilute the effects of the alcohol) is moreappropriate. As another example, if the recommendation module 408determines that the user 300 is exhibiting signs of loss of motorcoordination, a sudden fall, or other sudden change in movement/physicalstate that is not consistent with normal behavior, then a sudden illnessmay have occurred and an ambulance (or nearby person or user's 300spouse) should be alerted. At a block 510 f, the presentation module 402can facilitate calling medical personnel or a loved one, or evenemitting a noise or alert message to evoke a response from the user 300or a nearby person.

In some embodiments, the sensor data analysis module 404 (in conjunctionwith the user profile module 406) may determine that the received sensordata alone (or in conjunction with the user profile information) do notrepresent a state change or trigger that warrants a recommendation. Inwhich case block 510 f may not occur. For example, if the receivedsensor data indicates that the user 300 is not intoxicated or ill (e.g.,below a threshold), then no recommendation may be necessary at thatpoint in time. Subsequent sensor data may be monitored to note trends(e.g., alcohol consumption is increasing within a certain time period,or balance seems worse than before) for future recommendations.

It is understood that other physical environments may evoke a differentrecommendation response for the same detected movement/body physiology.For example, the user 300 being out in the wild or in an airplane callsfor different suggestions than when the user is in a motor vehicle.

Accordingly, a variety of information captured by sensors included inclothing and/or accessories that the user 300 (normally) wears arecommunicated to the computing device 320, such as the user's 300smartphone or tablet, for analysis and response. In response, thecomputing device 320 alone or in conjunction with user profile dataand/or other data source(s) formulates an action that is tailored to theuser 300 and which is context specific to the user's current physicalactivity, physical environment, physiological state, and/or userprofile. If the sensor data (or in conjunction with the user profileinformation) satisfies a state change or trigger, then the computingdevice 320 is configured to present one or morerecommendations/notifications to the user 300. Conversely, if the statechange or trigger is not satisfied, then the received sensor data may bestored for later use (and other data may be updated accordingly, such asthe user profile information), but no recommendation may be presented inresponse to that received sensor data.

FIG. 6 shows a diagrammatic representation of a machine in the exampleform of a computer system 600 within which a set of instructions, forcausing the machine to perform any one or more of the methodologiesdiscussed herein, may be executed. The computer system 600 comprises,for example, any of the device machine 110, device machine 112,applications servers 118, API server 114, web server 116, databaseservers 124, third party server machine 130, computing device 320,and/or server 322. In alternative embodiments, the machine operates as astandalone device or may be connected (e.g., networked) to othermachines. In a networked deployment, the machine may operate in thecapacity of a server or a client machine in server-client networkenvironment, or as a peer machine in a peer-to-peer (or distributed)network environment. The machine may be a server computer, a clientcomputer, a personal computer (PC), a tablet, a set-top box (STB), aPersonal Digital Assistant (PDA), a smart phone, a cellular telephone, aweb appliance, a network router, switch or bridge, or any machinecapable of executing a set of instructions (sequential or otherwise)that specify actions to be taken by that machine. Further, while only asingle machine is illustrated, the term “machine” shall also be taken toinclude any collection of machines that individually or jointly executea set (or multiple sets) of instructions to perform any one or more ofthe methodologies discussed herein.

The example computer system 600 includes a processor 602 (e.g., acentral processing unit (CPU), a graphics processing unit (GPU), orboth), a main memory 604 and a static memory 606, which communicate witheach other via a bus 608. The computer system 600 may further include avideo display unit 610 (e.g., liquid crystal display (LCD), organiclight emitting diode (OLED), touch screen, or a cathode ray tube (CRT)).The computer system 600 also includes an alphanumeric input device 612(e.g., a physical or virtual keyboard), a cursor control device 614(e.g., a mouse, a touch screen, a touchpad, a trackball, a trackpad), adisk drive unit 616, a signal generation device 618 (e.g., a speaker)and a network interface device 620.

The disk drive unit 616 includes a machine-readable medium 622 on whichis stored one or more sets of instructions 624 (e.g., software)embodying any one or more of the methodologies or functions describedherein. The instructions 624 may also reside, completely or at leastpartially, within the main memory 604 and/or within the processor 602during execution thereof by the computer system 600, the main memory 604and the processor 602 also constituting machine-readable media.

The instructions 624 may further be transmitted or received over anetwork 626 via the network interface device 620.

While the machine-readable medium 622 is shown in an example embodimentto be a single medium, the term “machine-readable medium” should betaken to include a single medium or multiple media (e.g., a centralizedor distributed database, and/or associated caches and servers) thatstore the one or more sets of instructions. The term “machine-readablemedium” shall also be taken to include any medium that is capable ofstoring, encoding or carrying a set of instructions for execution by themachine and that cause the machine to perform any one or more of themethodologies of the present invention. The term “machine-readablemedium” shall accordingly be taken to include, but not be limited to,solid-state memories, optical and magnetic media, and carrier wavesignals.

It will be appreciated that, for clarity purposes, the above descriptiondescribes some embodiments with reference to different functional unitsor processors. However, it will be apparent that any suitabledistribution of functionality between different functional units,processors or domains may be used without detracting from the invention.For example, functionality illustrated to be performed by separateprocessors or controllers may be performed by the same processor orcontroller. Hence, references to specific functional units are only tobe seen as references to suitable means for providing the describedfunctionality, rather than indicative of a strict logical or physicalstructure or organization.

Certain embodiments described herein may be implemented as logic or anumber of modules, engines, components, or mechanisms. A module, engine,logic, component, or mechanism (collectively referred to as a “module”)may be a tangible unit capable of performing certain operations andconfigured or arranged in a certain manner. In certain exampleembodiments, one or more computer systems (e.g., a standalone, client,or server computer system) or one or more components of a computersystem (e.g., a processor or a group of processors) may be configured bysoftware (e.g., an application or application portion) or firmware (notethat software and firmware can generally be used interchangeably hereinas is known by a skilled artisan) as a module that operates to performcertain operations described herein.

In various embodiments, a module may be implemented mechanically orelectronically. For example, a module may comprise dedicated circuitryor logic that is permanently configured (e.g., within a special-purposeprocessor, application specific integrated circuit (ASIC), or array) toperform certain operations. A module may also comprise programmablelogic or circuitry (e.g., as encompassed within a general-purposeprocessor or other programmable processor) that is temporarilyconfigured by software or firmware to perform certain operations. Itwill be appreciated that a decision to implement a module mechanically,in dedicated and permanently configured circuitry, or in temporarilyconfigured circuitry (e.g., configured by software) may be driven by,for example, cost, time, energy-usage, and package size considerations.

Accordingly, the term “module” should be understood to encompass atangible entity, be that an entity that is physically constructed,permanently configured (e.g., hardwired), non-transitory, or temporarilyconfigured (e.g., programmed) to operate in a certain manner or toperform certain operations described herein. Considering embodiments inwhich modules or components are temporarily configured (e.g.,programmed), each of the modules or components need not be configured orinstantiated at any one instance in time. For example, where the modulesor components comprise a general-purpose processor configured usingsoftware, the general-purpose processor may be configured as respectivedifferent modules at different times. Software may accordingly configurethe processor to constitute a particular module at one instance of timeand to constitute a different module at a different instance of time.

Modules can provide information to, and receive information from, othermodules. Accordingly, the described modules may be regarded as beingcommunicatively coupled. Where multiples of such modules existcontemporaneously, communications may be achieved through signaltransmission (e.g., over appropriate circuits and buses) that connectthe modules. In embodiments in which multiple modules are configured orinstantiated at different times, communications between such modules maybe achieved, for example, through the storage and retrieval ofinformation in memory structures to which the multiple modules haveaccess. For example, one module may perform an operation and store theoutput of that operation in a memory device to which it iscommunicatively coupled. A further module may then, at a later time,access the memory device to retrieve and process the stored output.Modules may also initiate communications with input or output devicesand can operate on a resource (e.g., a collection of information).

Although the present invention has been described in connection withsome embodiments, it is not intended to be limited to the specific formset forth herein. One skilled in the art would recognize that variousfeatures of the described embodiments may be combined in accordance withthe invention. Moreover, it will be appreciated that variousmodifications and alterations may be made by those skilled in the artwithout departing from the scope of the invention.

What is claimed is:
 1. A method implemented by at least one computingdevice, the method comprising: identifying a user profile associatedwith a user; receiving, via at least a three-dimensional depth sensorincluded in a wearable item, sensor data indicating that the user iswearing the wearable item; determining, based on the user profile: apreferred fit of the wearable item for the user, the preferred fit beingdefined based on past sensor data received from the three-dimensionaldepth sensor while the user was wearing the wearable item; and whetheroperation of the wearable item is known to the user; and responsive todetermining that the operation of the wearable item is not known to theuser, causing display of information regarding the wearable item, theinformation regarding the wearable item comprising instructions for theuser to adjust a fit of the wearable item to the preferred fit of thewearable item for the user.
 2. The method of claim 1, wherein theinformation regarding the wearable item comprises one or more graphicalrepresentations about how to wear the wearable item.
 3. The method ofclaim 1, wherein the information regarding the wearable item comprisesone or more graphical representations about how to operate the wearableitem to detect information regarding a body of the user.
 4. The methodof claim 1, wherein the information regarding the wearable itemcomprises one or more graphical representations about how to operate thewearable item to detect information regarding an activity of the user.5. The method of claim 1, wherein the information regarding the wearableitem comprises one or more graphical representations about how tooperate the wearable item to detect information regarding a physicalenvironment.
 6. The method of claim 1, wherein the information regardingthe wearable item comprises one or more graphical representationsdescribing how to facilitate communication between the wearable item anda different computing device.
 7. The method of claim 1, whereindetermining whether operation of the wearable item is known to the useris performed based on input previously provided by the user that isassociated with the user profile.
 8. The method of claim 1, furthercomprising monitoring a physical activity of the user while the user iswearing the wearable item using the three-dimensional depth sensor andupdating the user profile based on the monitoring.
 9. The method ofclaim 1, wherein the wearable item is a jacket.
 10. A system comprising:at least one processor; and a computer-readable storage medium storinginstructions that are executable by the at least one processor toperform operations comprising: receiving, via at least athree-dimensional depth sensor included in a wearable item, sensor dataindicating that a first user is wearing the wearable item; identifying afirst user profile associated with the first user and determining, basedon the first user profile: a preferred fit of the wearable item for thefirst user, the preferred fit being defined based on past sensor datareceived from the three-dimensional depth sensor while the first userwas wearing the wearable item; and that operation of the wearable itemis not known to the first user; responsive to determining that theoperation of the wearable item is not known to the first user, causingdisplay of instructions regarding the wearable item includinginstructions for the first user to adjust a fit of the wearable item tothe preferred fit of the wearable item for the first user; receiving,via the three-dimensional depth sensor, sensor data indicating that asecond user is wearing the wearable item; identifying a second userprofile associated with the second user and determining, based on thesecond user profile, that operation of the wearable item is known to thefirst user; and responsive to determining that the operation of thewearable item is known to the second user, not displaying theinstructions regarding the wearable item.
 11. The system of claim 10,wherein the instructions regarding the wearable item comprise one ormore graphical representations about how to wear the wearable item. 12.The system of claim 10, wherein the instructions regarding the wearableitem comprise one or more graphical representations about how to operatethe wearable item to detect information regarding a body of the firstuser.
 13. The system of claim 10, wherein the instructions regarding thewearable item comprise one or more graphical representations about howto operate the wearable item to detect information regarding an activityof the first user.
 14. The system of claim 10, wherein the instructionsregarding the wearable item comprise one or more graphicalrepresentations about how to operate the wearable item to detectinformation regarding a physical environment.
 15. The system of claim10, wherein the instructions regarding the wearable item comprise one ormore graphical representations describing how to facilitatecommunication between the wearable item and a different computingdevice.
 16. The system of claim 10, the operations further comprisingupdating the first user profile to indicate that the operation of thewearable item is known to the first user responsive to associating datadescribing the preferred fit for the wearable item with the first userprofile.
 17. The system of claim 10, wherein the wearable item is ajacket.
 18. A method implemented by at least one computing device, themethod comprising: receiving, via at least a three-dimensional depthsensor included in a wearable item, sensor data indicating that a useris wearing the wearable item; identifying a computing devicecommunicatively coupled to the wearable item and identifying a userprofile associated with the computing device; determining, based on theuser profile: that operation of the wearable item is not known to theuser; and a preferred fit of the wearable item for the user, thepreferred fit being defined based on past sensor data received from thethree-dimensional depth sensor while the user was wearing the wearableitem; responsive to determining that operation of the wearable item isnot known to the user, causing display of instructions regarding thewearable item including instructions for the user to adjust a fit of thewearable item to the preferred fit of the wearable item for the user andupdating the user profile to indicate that operation of the wearableitem is known to the user; and not displaying the instructions regardingthe wearable item subsequent to updating the user profile responsive toreceiving sensor data indicating that the user is wearing the wearableitem.
 19. The method of claim 18, wherein the instructions regarding thewearable item comprise one or more of instructions about how to operatethe wearable item to: detect information regarding a body of the user;detect information regarding an activity of the user; detect informationregarding a physical environment; or facilitate communication betweenthe wearable item and the computing device.
 20. The method of claim 18,wherein the wearable item is a jacket.